package main

import (
	"fmt"
	"sort"
)

/*
给定两个数组，编写一个函数来计算它们的交集
*/

func main() {
	nums1 := []int{1, 2, 2, 1}
	nums2 := []int{2, 2}
	fmt.Println(intersect(nums1, nums2))
}
func intersect(nums1 []int, nums2 []int) []int {
	sort.Ints(nums1)
	sort.Ints(nums2)
	r := make([]int, 0)
	for i, j := 0, 0; i < len(nums1) && j < len(nums2); i, j = i+1, j+1 {
		if nums1[i] < nums2[j] {
			j--
		} else if nums1[i] > nums2[j] {
			i--
		} else {
			r = append(r, nums1[i])
		}
	}
	return r
}
